Amazon CloudWatch SyntheticsによるURL監視のアラームをメール通知してみた
こんにちは、CX事業本部 IoT事業部の若槻です。
Amazon CloudWatch Syntheticsを使用すると、WebサイトやAPIのURLの監視(外形監視)を行うことができます。
今回は、Amazon CloudWatch SyntheticsによるURL監視のアラームをメール通知してみました。
構成
やってみた
Canaryの作成
CloudWatch Syntheticsでの外形監視はCanaryというリソースを作成して行います。(Canaryは炭鉱のカナリアから由来したAWSの造語と思われます。)
AWSマネジメントコンソールでAmazon CloudWatchのダッシュボード画面を開きます。
サイドバーメニューから[アプリケーションのモニタリング]-[Synthetics Canaries]を選択すると、Canaryの管理ページが開けます。[Create Canary]をクリックしてCanaryの作成を開始します。
今回は基本的なURL監視を行いたいので[設計図を使用する]-[ハートビートのモニタリング]を選択します。
[Canaryビルダー]では、Canaryの名前、監視対象のURLを指定します。スクリーンショットを取得したいので[Take screenshots]にチェックを入れます。
[スクリプトエディタ]では、監視用スクリプトを確認、編集できます。ここまでの設定が反映されたスクリプトが自動で作成されます。
Canaryの実行スケジュールを指定できます。今回は1回実行
を指定して手動のみで実行するようにします。
Canary実行により作成されたデータの保持期間と保存先のS3バケットを設定します。
Canaryが使用するIAMロールを設定します。
Canaryのアラームを設定できます。今回はアラーム通知を行いたいので[新しいアラームの追加]をクリックします。
SuccessPercent
、期間
、失敗
のメトリクスからアラームの条件を設定します。まずSuccessPercent
の既定の設定を使用して、監視期間5分でSuccessPercent(成功率)が90%を下回るという条件でアラーム通知を行う設定とします。
[このCanaryの通知を設定する]ではアラーム発生時の通知を設定できます。今回は[新しいトピックの作成]でSNSトピックを新規作成します。トピック名と通知先メールアドレスを指定して[トピックの作成]をクリックします。
作成したトピックを指定できました。
トピックのサブスクライブのComfirmを求めるメールが指定したメールアドレス来るので、Comfirm subscriptionをしておきます。
今回は触れませんが、VPC、タグ、Active tracing(X-Ray)の設定もできます。[Canaryを作成]をクリックして作成を行います。
動作確認
SuccessPercentによるアラーム通知
Canaryが作成されると一覧に追加されます。クリックして開きます。
スケジュール実行を設定していないので「このCanaryは停止しています。」と表示されています。[アクション]-[開始]をクリックして手動実行してみます。
実行が開始され、ステータスが「起動中」となります。
実行が終了するとステータスが「停止」に戻ります。2つの成功ポイントが100%にプロットされています。2つ目がただ今実行したものです。1つ目は作成時に既定でプロットされたものと思われます。
[スクリーンショット]タブではCanary実行により取得したスクリーンショット画像が確認できます。
[HARファイル]タブではCanary実行時の通信の詳細な情報が確認できます。
また、作成してから手動実行するまでの間に5分が経っていたようでアラーム通知メールが届いていました。
メールに記載のリンクからCloudWatchアラームを開いてグラフを見ると、手動実行するまでの間にアラーム状態となっていたことが分かります。
その後手動実行したCanaryをしばらく放置すると再度同様のアラーム通知メールが届きました。手動実行後にまた成功率90%以下となる期間が5分以上続いたためです。
CloudWatchアラームのグラフを見ると、再度アラーム状態となっています。
失敗によるアラーム通知
先程作成したCanaryの設定変更を行います。
スクリプトエディタでURLを404エラーとなるものに変更します。
CloudWatchアラームのメトリクスを失敗
に変更します。
設定変更を保存してCanaryの画面に戻ると、最終実行がいきなり失敗
となっていました。ここで気付いたのですが、Canaryの作成後や変更後に自動で1回実行が行われるようです。
しかしこれではアラーム状態が継続したままで通知も行われないので、一度設定を戻して手動実行により成功ポイントを作成した後、再度URLを失敗するものに変更します。
再度正常状態からアラーム状態となりました。
スクリーンショットは404エラー時のものとなっています。ふくろうがかわいい。
しかしアラーム状態になってからなかなかメールが届きません。確認するとCloudWatchアラームの通知設定が消えていました。どうやらCanary側でアラーム条件を変更すると通知設定が消えるようです。
CloudWatchアラームに対して再度アラーム通知を設定します。
Canaryを手動実行してClowdWatchアラームのステータスを正常状態からアラーム状態に変更させます。
するとアラーム通知がメールで届きました。
参考
以上